package com.zqw.mapper;

import com.zqw.info.AddressInfo;
import com.zqw.info.OrderDetailsInfo;
import com.zqw.info.OrderInfo;
import com.zqw.pojo.*;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface OrderMapper {

    /**
     * 创建一个订单
     * @param orderInfo
     * @return
     */
    public boolean addOrder(OrderInfo orderInfo);

    /**
     * 创建多条订单详情
     * @param
     * @return
     */
    public boolean addOrderDetails(@Param("orders") List<OrderDetailsInfo> orders);

    /**
     * 根据id查询订单
     * @param oid
     * @return
     */
    public OrderPojo queryOrder(@Param("oid") String oid);

    /**
     * 根据用户查询所有的订单
     * @param
     * @return
     */
    public List<OrderPojo> queryOrders(String cid);

    /**
     * 修改订单
     * @param orderInfo
     * @return
     */
    public boolean updOrders(OrderInfo orderInfo);

    /**
     * 查询地址
     * @param cid
     * @return
     */
    public List<AddressPojo> queryAddress(@Param("cid") String cid);

    /**
     * 添加一个收货地址
     * @param addressInfo
     * @return
     */
    public boolean addAddress(AddressInfo addressInfo);

    /**
     * 查询所有省
     * @return
     */
    public List<ProvincePojo> queryProvince();

    /**
     * 根据id查询所有的市
     * @return
     */
    public List<CityPojo> queryCity(String id);

    /**
     * 根据id查询所有的区
     * @return
     */
    public List<DistrictPojo> queryDistrict(String id);

    /**
     * 查询订单
     * @param orderInfo
     * @return
     */
    public List<OrderPojo> queryOrderss(OrderInfo orderInfo);

    /**
     * 修改商品
     * @param orderInfo
     * @return
     */
    public boolean updOrder(OrderInfo orderInfo);

    /**
     * 修改商品价格
     * @param orderInfo
     * @return
     */
    public boolean updOrderTwo(OrderInfo orderInfo);

    /**
     * 删除商品
     * @param oids
     * @return
     */
    public boolean delOrder(@Param("oids") String[] oids);

    /**
     * 根据id删除地址
     * @param addid
     * @return
     */
    public boolean delAddr(String addid);

    /**
     * 修改订单详情价格
     * @param orderDetailsPojo
     * @return
     */
    public boolean updOrderDetail(OrderDetailsPojo orderDetailsPojo);
}
